*****************************************************************************************************************************************************************
* Replication code for "“Honor List” and “Shame Roll”: Quasi-Experimental Evidence of the Effect of Performance Feedback under Political Control"
* Journal of Public Administration Research and Theory 
* Author: Wenchi Wei, Renmin University of China
* Author: Chengwei Wang, Renmin University of China
* Author: Wenkang Zhai, Renmin University of China
* Author: Wenzhao Li, Renmin University of China
* Address correspondence to the author at "weiwenchi@ruc.edu.cn" or "liwenzhao@ruc.edu.cn"
******************************************************************************************************************************************************************
***table 1***
asdoc sum score_improvement ranking_improvement treatment_honor_list treatment_shame_roll centered_fv_honor_list centered_fv_shame_roll fiscal_transfer_ratio log_total_revenues log_expenditures_gen_services log_three_public_expenditures log_geo_area log_total_population log_pop_density localpop_ratio

***table 2***
*** balance tests,local polynomial,linear,honor***
rdrobust log_total_revenues centered_fv_honor_list if score_higher_cutoffforblameroll==1& cutoff_honor_list!=100 ,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_expenditures_gen_services centered_fv_honor_list if  score_higher_cutoffforblameroll==1& cutoff_honor_list!=100 ,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_three_public_expenditures centered_fv_honor_list if score_higher_cutoffforblameroll==1& cutoff_honor_list!=100 ,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_geo_area centered_fv_honor_list if  score_higher_cutoffforblameroll==1& cutoff_honor_list!=100 ,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_total_population centered_fv_honor_list if  score_higher_cutoffforblameroll==1& cutoff_honor_list!=100 ,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_pop_density centered_fv_honor_list if  score_higher_cutoffforblameroll==1& cutoff_honor_list!=100 ,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust localpop_ratio centered_fv_honor_list if  score_higher_cutoffforblameroll==1& cutoff_honor_list!=100 ,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
***balance tests,local polynomial,linear,shame***
rdrobust log_total_revenues centered_fv_shame_roll if  score_lower_cutoffforhonorlist==1,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_expenditures_gen_services centered_fv_shame_roll if  score_lower_cutoffforhonorlist==1,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_three_public_expenditures centered_fv_shame_roll if  score_lower_cutoffforhonorlist==1,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_geo_area centered_fv_shame_roll if  score_lower_cutoffforhonorlist==1,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_total_population centered_fv_shame_roll if  score_lower_cutoffforhonorlist==1,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust log_pop_density centered_fv_shame_roll if  score_lower_cutoffforhonorlist==1,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)
rdrobust localpop_ratio centered_fv_shame_roll if  score_lower_cutoffforhonorlist==1,c(0) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) vce(nncluster id)

***table 3 and 4***
***final results,baseline model***
xtreg score_improvement treatment_honor_list centered_fv_honor_list i.time if score_not_100==1,fe i( id_unit ) robust
outreg2 using table3.doc, replace ctitle(Score)
xtreg ranking_improvement treatment_honor_list centered_fv_honor_list i.time ,fe i( id_unit ) robust
outreg2 using table3.doc, append ctitle(Rank)
xtreg score_improvement c.treatment_honor_list##c.fiscal_transfer_ratio centered_fv_honor_list i.time if score_not_100==1,fe i( id_unit ) robust
outreg2 using table3.doc, append ctitle(Score)
xtreg ranking_improvement c.treatment_honor_list##c.fiscal_transfer_ratio centered_fv_honor_list i.time ,fe i( id_unit ) robust
outreg2 using table3.doc, append ctitle(Rank)

xtreg score_improvement treatment_shame_roll centered_fv_shame_roll i.time ,fe i( id_unit ) robust
outreg2 using table4.doc, replace ctitle(Score)
xtreg ranking_improvement treatment_shame_roll centered_fv_shame_roll i.time ,fe i( id_unit ) robust
outreg2 using table4.doc, append ctitle(Rank)
xtreg score_improvement c.treatment_shame_roll##c.fiscal_transfer_ratio centered_fv_shame_roll i.time ,fe i( id_unit ) robust
outreg2 using table4.doc, append ctitle(Score)
xtreg ranking_improvement c.treatment_shame_roll##c.fiscal_transfer_ratio centered_fv_shame_roll i.time ,fe i( id_unit ) robust
outreg2 using table4.doc, append ctitle(Rank)

***figure 5, 6, 7, and 8***
***figure 5***
rdplot score_improvement centered_fv_honor_list if score_not_100==1,p(2) binselect(esmv) graph_options(graphregion(color(white)) xtitle(Centered forcing variable) ytitle(Improvement in performance score ))
***figure 6***
rdplot ranking_improvement centered_fv_honor_list ,p(2) binselect(esmv) graph_options(graphregion(color(white)) xtitle(Centered forcing variable) ytitle(Improvement in performance ranking ))
***figure 7***
rdplot score_improvement centered_fv_shame_roll ,p(2) binselect(esmv) graph_options(graphregion(color(white)) xtitle(Centered forcing variable) ytitle(Improvement in performance score ))
***figure 8***
rdplot ranking_improvement centered_fv_shame_roll ,p(2) binselect(esmv) graph_options(graphregion(color(white)) xtitle(Centered forcing variable) ytitle(Improvement in performance ranking ))

***robustness checks appendix table 1-3***
***table appendix 1***
xtreg score_improvement c.treatment_honor_list##c.centered_fv_honor_list i.time if score_not_100==1,fe i( id_unit ) robust
outreg2 using tableappendix1.doc, replace ctitle(Score)
xtreg ranking_improvement c.treatment_honor_list##c.centered_fv_honor_list i.time,fe i( id_unit ) robust
outreg2 using tableappendix1.doc, append ctitle(Rank)
xtreg score_improvement c.treatment_shame_roll##c.centered_fv_shame_roll i.time ,fe i( id_unit ) robust
outreg2 using tableappendix1.doc, append ctitle(Score)
xtreg ranking_improvement c.treatment_shame_roll##c.centered_fv_shame_roll i.time,fe i( id_unit ) robust
outreg2 using tableappendix1.doc, append ctitle(Rank)
***table appendix 2***
xtreg score_improvement treatment_honor_list centered_fv_honor_list log_total_revenues log_expenditures_gen_services log_three_public_expenditures log_geo_area log_total_population log_pop_density localpop_ratio i.time if score_not_100==1,fe i( id_unit ) robust
outreg2 using tableappendix2.doc, replace ctitle(Score)
xtreg ranking_improvement treatment_honor_list centered_fv_honor_list log_total_revenues log_expenditures_gen_services log_three_public_expenditures log_geo_area log_total_population log_pop_density localpop_ratio i.time,fe i( id_unit ) robust
outreg2 using tableappendix2.doc, append ctitle(Rank)
xtreg score_improvement treatment_shame_roll centered_fv_shame_roll log_total_revenues log_expenditures_gen_services log_three_public_expenditures log_geo_area log_total_population log_pop_density localpop_ratio i.time ,fe i( id_unit ) robust
outreg2 using tableappendix2.doc, append ctitle(Score)
xtreg ranking_improvement treatment_shame_roll centered_fv_shame_roll log_total_revenues log_expenditures_gen_services log_three_public_expenditures log_geo_area log_total_population log_pop_density localpop_ratio i.time,fe i( id_unit ) robust
outreg2 using tableappendix2.doc, append ctitle(Rank)
***table appendix 3***
xtreg score_improvement treatment_honor_list centered_fv_honor_list lag_honor_list lag_shame_roll i.time if score_not_100==1,fe i( id_unit ) robust
outreg2 using tableappendix3.doc, replace ctitle(Score)
xtreg ranking_improvement treatment_honor_list centered_fv_honor_list lag_honor_list lag_shame_roll i.time,fe i( id_unit ) robust
outreg2 using tableappendix3.doc, append ctitle(Rank)
xtreg score_improvement treatment_shame_roll centered_fv_shame_roll lag_honor_list lag_shame_roll i.time ,fe i( id_unit ) robust
outreg2 using tableappendix3.doc, append ctitle(Score)
xtreg ranking_improvement treatment_shame_roll centered_fv_shame_roll lag_honor_list lag_shame_roll i.time,fe i( id_unit ) robust
outreg2 using tableappendix3.doc, append ctitle(Rank)















